package com.lu.manage.modular.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lu.manage.core.common.node.ZTreeNode;
import com.lu.manage.modular.system.model.Role;

import java.util.List;
import java.util.Map;

public interface RoleService extends IService<Role> {

    /**
     * 新增角色
     * @param role
     * @return
     * @throws Exception
     */
    Role add(Role role) throws Exception;

    /**
     * 修改角色
     * @param role
     * @throws Exception
     */
    void update(Role role) throws Exception;

    /**
     * 删除角色
     * @param roleId
     */
    void delete(String roleId) throws Exception;

    /**
     * 角色排序
     * @param nodes
     */
    void sortAllRoles(String nodes) throws Exception;

    /**
     * 角色列表分页
     * @param map
     * @return
     */
    Object listPage(Map<String, Object> map);

    /**
     * 角色树
     * @return
     */
    Object roleTreeList();

    /**
     * 设置某个角色的权限
     * @param roleId  角色id
     * @param ids     菜单id
     * @throws Exception
     */
    void setAuthority(String roleId, String ids) throws Exception;

    /**
     * 根据角色ids 获取 角色树
     * @param strArray
     * @return
     */
    List<ZTreeNode> roleTreeListByRoleId(String[] strArray);
}
